home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Development Tools & Languages / Dylan Related / Marlais / MacMarlais 0.5.9d46 / Examples / print-all-classes.dyl < prev    next >
Encoding:
Text File  |  1995-03-15  |  607 b   |  28 lines  |  [TEXT/Mrls]

  1. /*
  2.     print-all-classes.dyl
  3.     
  4.     A nice example of the introspective facilities of Dylan.
  5.     
  6.     Contributed by Troy Heninger <troyh@netcom.com>.
  7.  */
  8.  
  9. define method print-all-classes() => ();
  10.     print-subclasses(<object>, 0);
  11. end method print-all-classes;
  12.  
  13. define method print-subclasses(aClass :: <class>, level :: <integer>) => ();
  14.     for (ix from 0 below level)
  15.         write-char('\t');
  16.     end for;
  17.  
  18.     print(debug-name(aClass));
  19.  
  20.     let subclasses = direct-subclasses(aClass);
  21.     if (subclasses)
  22.         for (subclass in subclasses)
  23.             print-subclasses(subclass, level + 1);
  24.         end for;
  25.     end if;
  26.     values()
  27. end method print-subclasses;
  28.